package com.gxnu.edu.cn.ttxxt.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gxnu.edu.cn.ttxxt.entity.Favorites;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface FavoriteRepository extends BaseMapper<Favorites> {

    /**
     * 根据用户ID查询收藏列表
     * @param userId 用户ID
     * @return 收藏列表
     */
    List<Favorites> findByUserId(@Param("userId") Long userId);

    /**
     * 检查用户是否已收藏指定联系人
     * @param userId 用户ID
     * @param contactId 联系人ID
     * @return 是否存在
     */
    boolean existsByUserIdAndContactId(@Param("userId") Long userId,
                                       @Param("contactId") Long contactId);

    /**
     * 根据用户ID和联系人类型查询收藏
     * @param userId 用户ID
     * @param contactType 联系人类型
     * @return 收藏列表
     */
    List<Favorites> findByUserIdAndContactType(@Param("userId") Long userId,
                                               @Param("contactType") Integer contactType);

    /**
     * 更新收藏排序
     * @param favoriteId 收藏ID
     * @param sortOrder 排序值
     * @return 影响行数
     */
    int updateSortOrder(@Param("favoriteId") Long favoriteId,
                        @Param("sortOrder") Integer sortOrder);
}